u`
eLXgсFp.341ucheckeduncheckedv
Q[JKF^C}[ Ȃ

p.341 checked

Eint.Parse\bhł́Aϊʂint.MaxValue𒴂邩Aint.MinValueƃI[o[t[ƂȂAOverflowException𓊂
EAvZ̓rŃI[o[t[ƂȂꍇAO𓊂Ȃ
@F int a = int.MaxValue, b = a + 1; //bint.MinValueɂȂ(O𓊂Ȃ)
Ê悤ȏꍇɂAOverflowException𓊂悤ɂ̂checked̎dg
EcheckedubN̒ɋLqĂƂŁAL\ɂ
@F checked { int a = int.MaxValue, b = a + 1; } //bint.MinValueɂȂ炸O𓊂
 eLXgł́uchecked(c)v`ЉĂ邪AubN`ɓꂷꍇ

p.341 checked02.cs

//p.341 checked02.cs
using System;
class checked02 {
    public static void Main() {
        int x, y, z;
        try {
            checked { //I[o[t[OƂ͈
                x = int.MaxValue;
                y = 1;
                z = x + y; //checkedꍇ̓I[o[t[O
                Console.WriteLine(z); //checkedȂint.MinValueɂȂĂ
            }
        } catch (OverflowException o) { //I[o[t[O
            Console.WriteLine(o.Message);
            Console.WriteLine(o.StackTrace);
        }
    }
}

p.341 unchecked

EcheckedubN̒ŁǍʂ𖳌͈͂鎞ɗp

//p.341 unchecked̗
using System;
class checked02 {
    public static void Main() {
        int x, y, z;
        x = int.MaxValue;
        y = 1;
        checked { //I[o[t[OƂ͈
            unchecked {
                Console.WriteLine("ȍ~̓I[ot[`FbNȂ");
                z = x + y; //uncheckedȂ̂ŃI[o[t[O͔Ȃ
            }
            Console.WriteLine("ȍ~̓I[ot[`FbN");
            z = x + y; //checkedȂ̂ŃI[o[t[O
            Console.WriteLine(z);
        }
    }
}

p.344 K qg

Eufor[vōsvƂ邪AÎŁufor(byte b = 1; ; b++)vƖ[vɂƗǂ
E삪킩悤ɁAr̒l\悤
EucatchvŃI[o[t[OLqA|\ĂAbreakŔ悤

쐬

//p.344 K
using System;
class ex13 {
    public static void Main() {
        byte x = 1;
        for (byte b = 1; ; b++) { //checkedȂΖ[vɂȂ
            try {
                checked { //I[o[t[OƂ͈
                    x *= b; //720ŃI[o[t[(checkedȂΗO͓Ȃ)
                    Console.WriteLine("x = {0}", x);
                }
            } catch (OverflowException) { //checkedΗÔŕߑ
                Console.WriteLine("I[o[t[O");
                break; //[v𔲂
            }
        }
        Console.WriteLine(x); //checkedȂΎsȂ
    }
}

14 Zq̃I[o[[h

p.345 Zq̃I[o[[h

EQ+Zq̂悤ɁAIyȟ^ɂpقȂ̂AZq̃I[o[[hƂ
Egݍ݌^(p.38)ɑ΂鉉Zq̃I[o[[h̓VXe̒`ɂ̂ŁAύXłȂ
EA[U`^ɑ΂鉉Zq̃I[o[[h́A[U`^\NX̒ɒ`ł
EFWNXŁuW(1,2) + W(3,4)  W(4,6)vł
EeLXgł́Af\NXɂƂāAf̌vZZq̃I[o[[hŎĂ
EfƂ͎Ƌ킹̂ŁAƂ-1̕܂ޒlŁA-1͒̕ʏuivŕ\B
EāAf͎aAb-1̕i̎Łua + bivŕ\łBb0łΎAłȂ΋B
@F u2iv͂Q悷 2(-1) ~ 2(-1) = 2 ~ 2 ~ (-1) ~ (-1) = -4 ƎɂȂ
EȂua + bivaAbƂAǂdouble^ňĂ
Efǂ̉揜̌(p.346)񎦂Ă̂ŁÂ܂܃NXɋLqΗǂ

p.347 complex01.cs

//p.347 complex01.cs
using System;
class MyComplex { 
  double real; //p̃f[^o 
  double imaginary; //p̃f[^o
  public double a { //p̃vpeB
    get { return real; } set { real = value; }
  }
  public double i { //p̃vpeB
    get { return imaginary; } set { imaginary = value; }
  }
  public MyComplex() { //ftHgRXgN^
    real = 0.0;
    imaginary = 0.0;
  }
  public MyComplex(double x, double y) { //Aw肷RXgN^
    real = x;
    imaginary = y;
  }
}
class Complex01 {
  public static void Main() {
    MyComplex A = new MyComplex(); //fu0 + 0iv𐶐
    A.a = 10;
    A.i = 5; //fu10 + 5ivɂȂ
    MyComplex B = new MyComplex(2, 3); //fu2 + 3iv𐶐 
    Console.WriteLine("fA̎{0}ŋ{1}łB", A.a, A.i);
    Console.WriteLine("fB̎{0}ŋ{1}łB", B.a, B.i);
  }
}

p.349 PZq̃I[o[[h

ENXŁAoperatorL[[hp\bhɋ߂Lq邱ƂŉZq̃I[o[[h\
EZq̃I[o[[hł́A߂lRɎwł邪ẢZq̈ӖO邱Ƃ͐Ȃ
EႦ΁AP-Zq̃I[o[[hł΁u𔽓]ʂ̓^IuWFNgvԂ̂K
Ef̏ꍇA-(1+2i)(-1)+(-2i)Ȃ̂ŁAƂċLq
EF public static NX operator Zq(NX ) { c; return NX^IuWFNg; }
EfComplexNX̒P-Zq̃I[o[[h̏ꍇF
@public static Complex operator -(Complex c) {c; return ComplexIuWFNg;}

⑫Fp.350 opov01.csɂ

ẼvOł́Ap.347 complex01.csŒ`ComplexNXMyComplexƃl[āApComplexNXLqāA̒ŒP-Zq̃I[o[[hsĂ
EApKv͑SȂ̂ŁApȂė悤

AWKFp.350 opov01.cs

EMyComplexNXComplexNXɖ߂ApȂ`ɂ悤

쐬

//AWKFp.350 opov01.cs
using System;
class Complex {
  double real; //p̃f[^o 
  double imaginary; //p̃f[^o
  public double a { //p̃vpeB
    get { return real; } set { real = value; }
  }
  public double i { //p̃vpeB
    get { return imaginary; } set { imaginary = value; }
  }
  public Complex() { //ftHgRXgN^
    real = 0.0;
    imaginary = 0.0;
  }
  public Complex(double x, double y) { //Aw肷RXgN^
    real = x;
    imaginary = y;
  }
  public static Complex operator -(Complex c) { //P-Zq̃I[o[[h
    Complex result = new Complex(); //ƗpComplexIuWFNg𐶐
    result.a = -1.0 * c.a; //̕𔽓]ʂi[
    result.i = -1.0 * c.i; //̕𔽓]ʂi[ 
    return result; //oオIuWFNgԂ
  }
}
class Opov01 {
  public static void Main() {
    Complex A, B; 
    A = new Complex(5, 2);  //Áu5 +2iv
    B = new Complex(6, -3); //B́u6 -3iv
    Console.WriteLine("-A̎{0}ŋ{1}łB", -A.a, -A.i); //-Áu-5 -2iv
    Console.WriteLine("-B̎{0}ŋ{1}łB", -B.a, -B.i); //-B́u-6 +3iv
  }
}

~jKFWNXMapɂP-Zq̃I[o[[h Map01.cs

Ep.350 opov01.csComplexNXMapNXɂ悤
EMapNX̓f[^oudouble x, y; //XWYWvƁAftHgRXgN^AXYWw肷RXgN^Ƃ
EP-Zq̃I[o[[hł́AXWYW̔]Ƃ悤

쐬

//WNXMapɂP-Zq̃I[o[[h Map01.cs
using System;
class Map {
  double x; //XWp̃f[^o 
  double y; //YWp̃f[^o
  public double X { //XWp̃vpeB
    get { return x; } set { x = value; }
  }
  public double Y { //YWp̃vpeB
    get { return y; } set { y = value; }
  }
  public Map() { //ftHgRXgN^
    x = 0.0;
    y = 0.0;
  }
  public Map(double x, double y) { //XWAYWw肷RXgN^
    this.x = x;
    this.y = y;
  }
  public static Map operator -(Map c) { //P-Zq̃I[o[[h
    Map result = new Map(); //ƗpMapIuWFNg𐶐
    result.x = -1.0 * c.x; //XW̕𔽓]ʂi[
    result.y = -1.0 * c.y; //YW̕𔽓]ʂi[ 
    return result; //oオIuWFNgԂ
  }
}
class Opov01 {
  public static void Main() {
    Map A = new Map(5, 2), B = -A; //BA̔]W
    Console.WriteLine("A({0},{1})", A.X, A.Y);
    Console.WriteLine("B({0},{1})", B.X, B.Y);
  }
}

⑫FZq̃I[o[[hȂꍇ

EZq̃I[o[[hƓe̒ʏ̃\bhLq邱Ƃł
EAZq̃I[o[[hpIɗłAǐオ



//WNXMapɂP-Zq̃I[o[[h Map01.cs
using System;
class Map {
  double x; //XWp̃f[^o 
  double y; //YWp̃f[^o
  public double X { //XWp̃vpeB
    get { return x; } set { x = value; }
  }
  public double Y { //YWp̃vpeB
    get { return y; } set { y = value; }
  }
  public Map() { //ftHgRXgN^
    x = 0.0;
    y = 0.0;
  }
  public Map(double x, double y) { //XWAYWw肷RXgN^
    this.x = x;
    this.y = y;
  }
  public static Map operator -(Map c) { //P-Zq̃I[o[[h
    Map result = new Map(); //ƗpMapIuWFNg𐶐
    result.x = -1.0 * c.x; //XW̕𔽓]ʂi[
    result.y = -1.0 * c.y; //YW̕𔽓]ʂi[ 
    return result; //oオIuWFNgԂ
  }
  public Map reverse(Map c) { //yQlzP-Zq̃I[o[[hł͂Ȃʏ̃\bhŎ邱Ƃł邪
    Map result = new Map(); //ƗpMapIuWFNg𐶐
    result.x = -1.0 * c.x; //XW̕𔽓]ʂi[
    result.y = -1.0 * c.y; //YW̕𔽓]ʂi[ 
    return result; //oオIuWFNgԂ
  }  
}
class Opov01 {
  public static void Main() {
    Map A = new Map(5, 2), B = -A; //BA̔]W
    Console.WriteLine("A({0},{1})", A.X, A.Y);
    Console.WriteLine("B({0},{1})", B.X, B.Y);
    B = A.reverse(A); //łBA̔]Wɂł邪킩Â炭Ȃ
    Console.WriteLine("B({0},{1})", B.X, B.Y);
  }
}

eLXgю\Fp.352uQZq̃I[o[[hv

Q[JKFX^[gʂ̒ǉiÂj

K20 X^[gʂ̒ǉiČfځ{j

ENXϐgamemode0ŏĂi0:X^[gʁA1:vCʁj
Egamemode0ł΁Awi摜A^CguGAME1vAbZ[WuHit Enter to Startv\
Egamemode1ł΁Awi摜AGAAXRA\
E^CguGAME1v̓CIA80|CgAAFA(100,100)
EbZ[WuHit Enter to Startv̓CIA25|CgAAFA(200,300)
EX^[gʂEnterL[(L[R[h"Return")ꂽAgamemode1ɂāAInvalidate()\bhĂԂƂŉʍĕ`˗

쐬

//K20 X^[gʂ̒ǉ
using System; //tH[AvP[VɕK{
using System.Windows.Forms; //tH[AvP[VɕK{
using System.Drawing; //Imagep
class Program : Form { //FormNXp
    Image backb = Image.FromFile("backb.bmp"); //wi摜̓Ǎ
    Image enemy = Image.FromFile("enemy.gif"); //ACe摜̓Ǎ
    Image burn = Image.FromFile("burn.gif"); //ʗp摜̓Ǎ
    Pen mypen = new Pen(Color.Red, 2); //y𐶐(l͐ԁA2)
    Brush bred = new SolidBrush(Color.FromArgb(63, 255, 0, 0)); //uV𐶐(Ԃ̓F)
    Brush byel = new SolidBrush(Color.Yellow); //uV𐶐(F)
    Font f20 = new Font("CI", 20, FontStyle.Bold); //tHg𐶐(CI20P)
    Font f80 = new Font("CI", 80, FontStyle.Bold); //yǉztHg𐶐(CI80P)
    Font f25 = new Font("CI", 25, FontStyle.Bold); //yǉztHg𐶐(CI25P)
    int gamemode = 0; //yǉz0:X^[gʁA1:vC
    void DrawCircle(PaintEventArgs e, Pen p, int x, int y, int r) { //yASWAaw肵ĉ~`
        e.Graphics.DrawEllipse(p, x - r, y - r, 2 * r, 2 * r); //~̕`Ă
    }
    protected override void OnPaint(PaintEventArgs e) { //Form̃\bhI[o[Ch
        base.OnPaint(e); //܂AFormNXɂ郁\bh̓e({ĕ`揈)s
        e.Graphics.DrawImage(backb, 0, 0); //wi摜(0,0)`
        if (gamemode == 0) { //yȉǉzX^[g
            e.Graphics.DrawString("GAME1", f80, byel, 100, 100); //^Cg̕`
            e.Graphics.DrawString("Hit Enter to Start", f20, byel, 200, 300); //bZ[W̕`
        } else if (gamemode == 1) { //yǉzvC
            e.Graphics.FillRectangle(bred, 78, 411, 485, 64); //GA𓧖ԂœhԂ
            e.Graphics.DrawRectangle(mypen, 78, 411, 485, 64); //GA̕`
            e.Graphics.DrawString("SCORE:000,000", f20, byel, 400, 10); //XRA̕`
        }
    }
    void OnKeyDown(object o, KeyEventArgs e) { //L[{[hꂽɌĂ΂郁\bh
        if(e.KeyCode.ToString() == "Escape") { //EscL[ꂽ
            Close(); //tH[AvP[VI
        }
        if(gamemode == 0 && e.KeyCode.ToString() == "Return") { //yȉǉzX^[gʂEnterL[ꂽ
            gamemode = 1; //vCʂɐ؂ւ
            Invalidate(); //ʍĕ`˗
        }
    }
    Program() { //RXgN^
        KeyDown += new KeyEventHandler(OnKeyDown); //L[{[hꂽɌĂ΂郁\bho^
    }
    static void Main() { //public̎w͔C
        Program p = new Program(); //ptH[̃CX^X𐶐
        p.Width = 660; //CX^XWidthvpeBɕ
        p.Height = 520; //CX^XHeightvpeBɍ
        p.Text = "Game"; //CX^XTextvpeBɃtH[
        p.ControlBox = false; //ControlBox\ɂ
        p.FormBorderStyle = FormBorderStyle.Fixed3D; //tH[TCYύX֎~
        Application.Run(p); //CX^Xʂɏo
    }
}

oFK20 X^[gʂ̒ǉ

Q[JK\F^C}[ Ȃ

